SmartEditor 使用说明
ChainMaker SmartEditor 使用说明#
产品背景及意义#
目前市面上主流的后端开发语言还是以Java、Go等语种为主,而区块链行业智能合约的开发语言的以Solidity居多,对于传统语种开发者想转型做合约开发而言存在一定的语言门槛。
为了降低使用门槛,使区块链出圈,团队致力打造Go语言合约相关生态,考虑到目前市面上尚无专门为Go语言服务的合约IDE产品,故我们自行研发长安链合约IDE, Chainmaker SmartEditor。
目标用户#
区块链合约开发工程师,以及其他对区块链感兴趣,想从事区块链行业相关应用开发的朋友。
整体业务流程#
注册/登录#
注册#
长安链合约IDE (Chainmaker SmartEditor)使用长安链GitLab账户直接登录,如果您没注册,可点击注册按钮跳转到 注册页面 完成注册。
登录#
如果您已经有长安链GitLab账户,点击登录按钮可跳转到长安链GitLab进行授权登录。
- 如果您已经授权过,则下次将免授权登录。
- 您如果需要替换IDE的登录账户,请先替换长安链GitLab账号,再重新登录。
全局界面分区说明#
- 文件目录模块用于管理合约工程及相关文件。
- 调试合约用于调试正在编写的合约代码
- 编译合约用于将所编写的合约代码编译成可部署的合约文件,支持导出到本地然后部署到链上,也支持直接通过IDE部署到链上。
- 部署合约用于将已编译的合约通过IDE直接部署到指定的区块链上。
- 调用合约用于通过IDE直接调用已经部署到链上的合约,用于验证合约是否部署成功。
- 系统设置用于设置IDE的UI样式,如主题,字号、行高等。
- 代码编写区用于编写合约代码。
- 代码大纲用于快速定位代码。
- 执行日志输出区用于展示在合约调试、合约编辑操作时产生的相关日志信息
- 合约事件展示用于展示合约在调试过程中产生的事件信息。
- 合约世界状态用于记录合约在调试过程中产生的状态信息,支持基于已存在的状态进行二次调试调用。
全局快捷键说明#
mac系统#
- command + \ 自动补全
- ctrl + q :关闭当前编译器
- ctrl +n 创建新文件
- command + c:复制选中内容
- command+ v:粘贴所复制到内容
- command + f:检索
- command + l:跳转到行
- command + e:删除当前行
- command + s:保存当前编译器文件
- command + shift + up :复制到上方
- command + shift + down:复制到下方
- command + shift + s:保全当前所有编译区文件
- command + shift + f :格式化
- command + shift + r:替换全部
- command + 鼠标左键:跳转到函数方法详情
Windows系统#
- ctrl + \ 自动补全
- ctrl + q :关闭当前编译器
- ctrl + c:复制选中内容
- ctrl + v:粘贴所复制到内容
- ctrl + f:检索
- ctrl + l:跳转到行
- ctrl + e:删除当前行
- ctrl + s:保存当前编译器文件
- ctrl + shift + up :复制到上方
- ctrl + shift + down:复制到下方
- ctrl + shift + s:保全当前所有编译区文件
- ctrl + shift + f :格式化
- ctrl + shift + r:替换全部
- ctrl + 鼠标左键:跳转到函数方法详情
合约编写#
合约文件目录#
- 每个用户都有一个workspace空间。首次使用IDE时,系统会默认创建一个Demo存证合约,供开发者体验。
- 您也可以在workspace下创建自己的合约项目,一个账户支持创建多个合约项目,并一个一级文件夹为基准区分合约工程。
- 支持对文件进行的常规操作,如新增、删除、导出、重命名等。
- 一个合约工程可以由多个文件构成,支持跨文件调用函数方法。
- 如果您已经有现成的合约文件,支持批量导入IDE内,单次最多可导入20个文件,每个文件大小不超过2M。如果文件实在太大无法导入,可以选择直接复制代码粘贴进来。
- 此处展示 Go SDK 和依赖的第三方库的源码。可在代码编写区通过快捷键(command + 鼠标左键)跳转到源码,查看源码详情。
合约代码编写#
- 通过左上角的放大、缩小图标,快速改变代码编写区的的文字字体大小和行高。
- 通过右上角的展开/收齐图标可以展开/收齐代码编写区。
- 支持代码高亮、支持语义分析,语法检测、代码自动补全。
- 支持代码格式化。
- 支持同合约工程跨文件调用函数方法。
- 目前不支持自动保存功能,要进行合约调试和部署时,请注意先保存合约已更新最新代码信息。
合约调试#
- 合约代码编写完后,会自动解析出代码里的的方法列表,支持在IDE内调用所编写的合约方法进行调试。
- 调试前需要先构建合约。
- 如果需要进行跨合约调用,则需要选择所要跨的合约,并一并进行构建,构建成功后,才能调试。
- 调试合约过程中,在底部会展示相关的执行日志,并记录所产生的合约事件 ,以及合约状态。
- 支持引用已有的状态值进行二次调试。
- 为方便调试,支持手动增删改合约世界状态的key和value。
- 双击某一行,可展开/收起合约世界状态的历史迭代器,其中历史记录只能查看,不能修改。
- 为方便查看跨合约调用的合约状态变更情况,支持在世界状态处切换合约。
合约编译及导出#
- 目前IDE所支持的合约语言为Go语言、支持的虚拟机类型为Docker Go虚拟机,支持的长安链版本为 V2.1.0+。
- 合约编译完成后,可直接在IDE内通过Web插件部署到链上,也可将编译后到文件下载到本地自行部署。
部署合约到链上#
- 可将编译好的合约,通过Web插件直接部署到指定的链上。若您部署合约时,未安装插件,请根据提示安装Web插件后,再部署合约。
- 选择合约时,请留意最新的编译时间,以免选错合约。
- 请留意合约名称+合约版本号必须唯一,不能与链上已有的合约有冲突。
- 目前暂不支持升级合约。
- 如果所要部署的合约,需要填一些额外信息,可在部署时一并写入。
- 在Web插件上,需要预先链接区块链和添加上链账户信息,相关操作说明可参考 Web插件使用说明文档
- 通过IDE唤起Web插件后,选择该合约要部署的链,以及要使用的上链账号,并进行签名,发起上链交易。上链过程,视区块网络情况而定,可能需要一定的时间,请耐心等待几秒钟。
- 部署成功后,可在Web插件的上链记录里找到相关的上链记录,以及交易哈希,如查看更多信息,可复制交易哈希到区块链浏览器内查看交易详情。
调用链上合约#
- 当部署合约成功后,可以IDE内进行调用合约,已验证合约是否生效。
- 选择合约方法,输入参数后,点击合约调用,将唤起Web插件,并在插件上选择相应的链账号,进行调用。
-
上链过程,视区块网络情况而定,可能需要一定的时间,请耐心等待几秒钟。
-
调用成功后,可在Web插件的上链记录里找到相关的上链记录,以及交易哈希,如查看更多信息,可复制交易哈希到区块链浏览器内查看交易详情。